1. Technical Field
The present invention relates to virtual machines, and more particularly to virtual machine consolidation.
2. Description of the Related Art
A virtual machine (VM) is a software implementation of a machine (i.e., computer) that executes programs like a physical machine In server consolidation, VMs are consolidated into servers so as to efficiently reduce the total number of servers. The goal is to consolidate more VMs into a single server. By turning off inactive servers, power and cooling costs can be reduced.
In one conventional approach, the required CPU usage for each VM is defined as the maximum CPU usage. However, typical CPU usage history is very “spiky.” In other words, CPU usage is usually low and occasionally becomes very high for a very short period of time. If the maximum CPU usage is defined as the required CPU usage of a VM, the CPU usage of the VM will often be overestimated.
In another conventional approach, the required CPU usage for each VM is defined as the 98th percentile of CPU usage history. This approach avoids the overestimation problem associated with defining the required CPU usage ui as the maximum CPU usage. However, this approach may lose information at the maximum CPU usage.